package d2_buffer_stream;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        //目标: 完成出师表案例


        try (
                //2、创建缓冲字符输入流与目标文件接通
                BufferedReader br = new BufferedReader(new FileReader("javapromax\\day10-io-code\\src\\出师表.txt"));
                //5、创建缓冲字符输出流与目标文件的管道
                BufferedWriter bw = new BufferedWriter(
                        new FileWriter("javapromax\\day10-io-code\\src\\出师表02.txt")
                );
        ) {
            //1、准备一个集合,存储原文的每个段落
            List<String> data = new ArrayList<>();


            //3、開始按照行读, 并存到集合中去
            String line;
            while ((line = br.readLine()) != null) {
                data.add(line);//加入到集合里面去
            }
            //4、对集合进行排序-->使用工具类Collections -->默认按照首字符的编号进行升序排序
            Collections.sort(data);
            //对集合进行输出
            System.out.println(data);

            //6、遍历集合,获取,每一段文本,进行写出,即可
            for (String ln : data) {
                //每次写出一个字符串
                bw.write(ln);
                //不用换行,文本自带换行-->从集合中进行写出的,的换行
                bw.newLine();
            }


        } catch (Exception e) {
            e.printStackTrace(); //打印堆栈信息
        }


    }
}
